multi-path-matcher
Finds and decodes best matching path in a set of routes
usage
With params
import { compile, matcher } from "multi-path-matcher";
const routes = [
{ path: "/a/b/c" },
{ path: "/a/b" },
{ path: "/d/:att1/e/:att2" },
{ path: "/d/:att1/e" },
{ path: "/" }
];
const compiled = compile(routes);
matcher(compiled "/a");
matcher(compiled, "/a/b");
matcher(compiled, "/a/b/c");
matcher(compiled, "/d/value1/e");
matcher(compiled, "/d/value1/e/value2?sort=asc");
matcher(compiled, "/");
With wildcards
import { compile, matcher } from "multi-path-matcher";
const routes = [
{ path: "/" },
{ path: "/*" },
{ path: "/about" },
{ path: "/login" }
];
const compiled = compile(routes);
matcher(compiled, "/");
matcher(compiled, "/index.html");
matcher(compiled, "/about");
matcher(compiled, "/login?param=1");
API
Table of Contents
CompiledRoutes
Result of the routes compilation
Type: Object
Properties
Route
One single route
Type: Object
Properties
Match
Result of a match
Type: Object
Properties
route
Array<Route> as given to the compiler, undefined if no matching route was foundparams
Object extracted from the path
PLAIN
Prioritiy for a plain path component
Type: number
MATCH
Prioritiy for a path component with matching
Type: number
PARAM
Prioritiy for a parameter path component
Type: number
compile
Compile a set of routes.
All properties of the original routes are preserved
Parameters
Returns CompiledRoutes
CompiledRoute
Result of a path compilation
priorities for each path component
Type: Object
Properties
regex
RegExp for later checking and params extractionkeys
Array<string> all keys found in the routepriority
number order in which to check
pathToRegexp
Generate regex with priority
Parameters
Returns CompiledRoute
matcher
Find best match for a given path
Parameters
Returns Match match
install
With npm do:
npm install multi-path-matcher
license
BSD-2-Clause